DB System

DB main Concept
통합된 데이터
저장된 데이터
운영(변화하는) 데이터
공용 데이터
DB characteristic
실시간 접근성: 실시간으로 서비스 된다. 사용자가 데이터를 요청하면, 수 초 내에 결과를 서버스
계속적인 변화: 저장된 내용은 한 순간의 상태이지만, 데이터의 값은 시간에 따라 항상 바뀐다.
동시 공유: 여러 사용자에게 동시에 공유된다.
내용에 따른 참조: 저장된 데이터는 물리적인 위치가 아닌 값에 따라 참조
DB System Structure
DBMS: 사용자와 데이터베이스를 연결시켜주는 소프트웨어
DB: 데이터
Data Model: 데이터가 저장되는 기법
DB System Development
1. 파일 시스템(File System)
파일 단위로 데이터를 파일서버에 저장
각 컴퓨터는 LAN을 통해 파일 서버에 연결 각 컴퓨터는 응용프로그램에서 open/close를 통해서 데이터를 요청
데이터가 중복 저장될 수 있음
동시에 파일을 다루기 때문에 데이터의 일관성이 훼손될 수 있음
2. 데이터베이스 시스템(DB System)
DBMS를 도입하여 데이터를 통합 관리하는 시스템
DBMS가 설치되어 데이터를 가진쪽을 서버(Server), 데이터를 요청하는 쪽을 클라이언트(Client)라고 한다.
DBMS 서버가 파일을 다루며, 데이터의 일관성 유지, 복구, 동시 접근 제어 등의 기능을 수행
데이터의 중복을 줄이고 데이터를 표준화하며 무결성을 유지
3. 웹 데이터베이스 시스템(Web DB System)
데이터베이스를 웹 브라우저에서 사용할 수 있도록 서비스하는 시스템
불특정 다수의 고객을 상대로 하는 온라인 상거래나 공공 민원 서비스에서 사용
4. 분산 데이터베이스 시스템(Distributed DB System)
여러 곳에 분산된 DBMS 서버를 연결하여 운영하는 시스템
대규모 응용 시스템에 사용된다.
DB 사용자 분류
- 일반 사용자: 데이터 베이스에 접근하는 일반인
- 응용 프로그래머: Java, C, JSP등의 프로그래밍 언어와 SQL을 사용하여 UI와 데이터를 관리하는 응용 로직을 개발
- SQL 사용자: SQL을 사용하여, 업무를 처리 응용프로그램으로 구현되어 있지 않은 업무를 SQL을 사용하여 처리
- 데이터 베이스 관리자(DBA): DataBse Administrator 데이터베이스 운영 조직의 시스템을 총괄 데이터 설결, 구현, 유지보수
DBMS 기능
데이터 정의(Definition): 데이터의 구조 정의, 데이터 구조에 대한 삭제 및 변경 기능 수행-데이터 구조(Table) 작업
데이터 조작(Manipulation): 데이터를 조작하 프로그램이 요청하는 데이터의 삽입, 수정, 삭제 기능 수행-Table의 Data 작업
데이터 추출(Retrieval): 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출
데이터 제어(Control): 데이터베이스 사용자를 생성, 모니터링하면 접근을 제어, 백업 & 회복, 동시성제어 등을 지원
Data Model
계층 데이터 모델(hierachical data model)
네트워크 데이터 모델(network data model)
관계 데이터 모델(relation data model)
객체 데이터 모델(object data model)
객체-관계 데이터 모델(object-relation data model)
관계 데이터 모델
학생 관계에서는 학번과 이름 수강하는 강좌번호 속성
강좌라는 관계에서는 강좌번호 강좌 이름에 대한 속성이 필요
학생의 강좌번호와 강좌의 강좌번호를 통해서 두 데이터를 연결시킴
3 phase Database structure
- 외부스키마(External Schema)
- 개념스키마(Conceptual Schema)
- 내부스키마(Internal Schema)
- 외부 스키마(External Schema, Sub Schema)
일반 사용자나 응용 프로그래머가 접근하는 계층(전체 데이터베이스 중 하나의 논리적인 부분을 의미)
여러개의 외부 스키마가 있을 수 있음
- 개념 스키마(Conceptal Schema)
전체 데이터의 베이스의 정의를 의미
통합 조직별로 하나만 존재하며 DBA가 관리(하나의 DB에는 하나의 개념 스키마가 존재)
- 내부 스키마(Internal Schema)
물리적 저장장치에 데이터베이스가 실제로 저장되는 방법의 표현
내부 스키마는 DB에서 하나만 존재
인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함
매핑(Mapping)
- 외부/개념 매핑: 외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당하는지 대응
- 개념/내부 매핑: 개념 스키마의 데이터가 내부 스키마의 물리적 장치 어디에 어떤 방법으로 저장되는지 대응
RDB의 PK & FK
- PK(Primary Key): table의 고유한 id(각 row는 저마다의 PK를 가짐)
- FK(Foriegn Key): 관계형 DB에서의 외래 키로 한 테이블의 필드(attribute)중 다른 테이블의 행(row)를 식별할 수 있는 키
논리적 데이터 독립성
외부 스키마와 개념 스키마 사이의 독립성
개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원
논리적 구조가 변경되어도 응용 프로그램에는 영향이 없도록 한다
개념 스키마의 테이블을 생성하거나 변경하여도 외부 스키마가 직접 다루는 테이블이 아니면 영향이 없다.
물리적 데이터 독립성
개념 스키마와 내부 스키마 사이의 독립성
저장장치 구조 변경과 같이 내부스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원
성능 개선을 위해 물리적 저장 장치를 재구성할 경우 개념 스키마나 외부 스키마에 영향이 없음
물리적 독립성은 논리적 독립성보다 구현하기 쉽다.